perm filename CUES.F4[PAX,LCS] blob
sn#529268 filedate 1981-03-11 generic text, type T, neo UTF8
SUBROUTINE CUES(JCUE)
COMMON /PX/KPN(1)/XRN/RN(1)/PTR/KWDS(1)/RCLF/KK,CLEF,KW,ITEM
1 /LLL/LLL /Q/Q(1)
LQ=LLL
DO 1 K=1,LQ
C BACK THROUGH ARRAY FROM LAST CUE FOUND.
IF(CODEN(KPN,K,Q,J).NE.2)GO TO 1
C NEXT FOUND A REST
IF(Q(J).LT.8)GO TO 1
C JUMP IF WDCNT IS TOO SMALL
IF(Q(J+10).LT.100)GO TO 1
C P10=100+STAFF NUM. OF CUE DATA. JUMP IF IMPROPER NUM.
STF=Q(J+10)-100.
POS=Q(J+3)
C POSITION OF THIS REST
PLEFT=0
PRGHT=1000
C POSITIONS FOR BARS TO LEFT AND RIGHT. NEXT FIND PROPER BARS.
DO 2 L=1,ITEM
IF(CODEN(KWDS,L,RN,N).NE.4)GO TO 2
C FIND A BAR AND ITS POS.
X=RN(N+3)
IF(X.GT.POS)GO TO 3
C IS TO LEFT OR RIGHT OF REST?
IF(X.GT.PLEFT)PLEFT=X
GO TO 2
3 IF(X.LT.PRGHT)PRGHT=X
2 CONTINUE
C NOW FOUND BARS ON EACH SIDE OF REST.
DO 4 L=1,ITEM
C NOW FIND NOTES WITHIN PROPER BAR AND ON PROPER STAFF
R=CODEN(KWDS,L,RN,N)
IF(RN(N+2).NE.STF)GO TO 4
RS=RN(N+3)
C POS. OF ITEM.
IF(RS.GT.PRGHT)GO TO 4
IF(RS.LT.PLEFT)GO TO 4
C NOW BETWEEN BARS.
IF(R.GT.6)GO TO 4
C USE NOTES,RESTS,CLEFS,SLURS,BEAMS
RN(N+4)=RN(N+4)+100.
C MAKE ALL MINIS AND PUT ON STAFF 0
RN(N+2)=0
CALL QRN(N,KPN,L)
C GO PUT IT INTO Q ARRAY
4 CONTINUE
Q(J+3)=POS+1
C SHIFT THE WHOLE REST A BIT TO THE RIGHT.
Q(J+10)=0
Q(J+6)=-1
Q(J+9)=0
Q(J+8)=0
Q(J+7)=0
C ZERO RHYTHM OF THE WHOLE REST AND WHOLE REST FLAG(P8)
1 CONTINUE
END